#include <maloc.h> требуется только для объявления функции.
void free(ptr);
char *ptr; указатель на захваченный блок памяти.
Описание:
Функция free освобождает блок памяти. Аргумент ptr указывает на ранее захваченный блок памяти посредством вызова calloc , malloc, realloc . Числом освобожденных байтов является число байтов, определенных при захвате блока (или перезахвате). После вызова освободившийся блок доступен для захвата.
Возвращаемое значение:
Возвращаемого значения нет.
Замечание!
Попытка освободить неверный ptr (указатель не захватывается посредством вызова calloc, malloc или realloc ) может привести к следующему захвату и вызвать ошибку.
Пример.
#include <malloc.h>
#include <stdio.h>
char *alloc;
/* захватывает 100 байтов и освобождает их */
if ((alloc=malloc(100))==NULL
/* проверяет на правильность указателя */
printf("unable to allocate memory\n");
else {
.
.
.
free(alloc);
/* освобождает память для heap */
}